事例:Fix escape of filenames in bundle doctor
https://github.com/rubygems/rubygems/pull/5102
問題
bundler doctor
コマンドが実行される際にインストールされているgemのなかから
*.bundle
のファイルが探索される
見つけた結果から実行される
/usr/bin/otool -L "#{path}"
がescapeされていない
/usr/bin/ldd "#{path}"
も同様
$(date).bundle
のようなファイルがあると
shell injection
となった
細工されたgemがインストールされている時点で危険であるため、相対的に危険度は少ない
修正
Shellwords
を利用してエスケープ
CVEなし
#bundler
#事例